<template>
<div class="article-page">

    <div class="banner">
        <div class="container">

        <h1>{{article.title}}</h1>
        <article-meta :article="article" />
        </div>
    </div>

    <div class="container page">

        <div class="row article-content">
        <div class="col-md-12" v-html="article.body"></div>
        <ul class="tag-list">
            <li
                v-for="tag in article.tagList"
                class="tag-default tag-pill tag-outline ng-binding ng-scope"
                :key="tag"
            >
                {{tag}}
            </li>
        </ul>
        </div>

        <hr />

        <div class="article-actions">
            <article-meta :article="article" />
        </div>

        <div class="row">

        <div class="col-xs-12 col-md-8 offset-md-2">

            <article-comments v-if="isLogin" :article="article" />
            
        </div>

        </div>

    </div>

</div>
</template>

<script>
import MarkdownIt from 'markdown-it'
import { mapState } from 'vuex'

import { getArticle } from '@/api/article'

import ArticleMeta from './components/article-meta'
import ArticleComments from './components/article-comments'

export default {
    name: 'ArticleIndex',
    components: {
        ArticleMeta,
        ArticleComments
    },
    async asyncData({ params }) {
        const { data } = await getArticle(params.slug)
        const { article } = data
        article.favoriteDisable = false
        article.isDeleting = false
        article.author.followDisable = false
        const md = new MarkdownIt()
        article.body = md.render(article.body)
        console.log(data)
        return {
            article
        }
    },
    head() {
        return {
            title: `${this.article.title} - RealWorld`,
            meta: [
                { hid: 'description', name: 'description', content: this.article.description }
            ]
        }
    },
    computed: {
        ...mapState(['user']),
        isLogin() {
            return !!this.user
        }
    }
}
</script>

<style>

</style>